<?php

/**
 * CtCaracteristicaPadre form.
 *
 * @package    ingenyo-biblio
 * @subpackage form
 * @author     Your name here
 */
class CtCaracteristicaPadreForm extends BaseCtCaracteristicaPadreForm
{

  public function configure()
  {
    unset($this['idCaracteristica'], $this['OrdenHijo'], $this['usuario'], $this['CaracterBusqueda']);
    $this->setWidget('todelete', new sfWidgetFormInputHidden());
    $this->getWidget('todelete')->setAttribute('value',0);
    $sf_formatter_revisited = new documentoFormatter($this->getWidgetSchema());
    $this->getWidgetSchema()->addFormFormatter("documento", $sf_formatter_revisited);
    $this->getWidgetSchema()->setFormFormatterName("documento");

    $this->setWidget('titulo', new mtWidgetFormPartial(array('module'=>'ct_documento','partial'=>'titulo_padre','form'=>$this,
                                                             'parameters'=>array('padre'=>$this->getObject(),
                                                                                 'repetible' => $this->getObject()->isRepetible(),
                                                                                 'show_delete' => $this->getOption('show_delete', false)
                                                                                 )
                                                             )
                                                       ));
//    $this->setWidget('titulo', new mtWidgetFormPlain(array('object' => $this->getObject())));
//    $this->getWidget('titulo')->setAttribute('class', 'titulo_caracteristica');
//    if ($this->getObject()->isRepetible()){
//      $this->getWidget('titulo')->setAttribute('class', 'padre_repetible');
//    }
//    
    $this->validatorSchema->setOption('allow_extra_fields', true);
    $this->disableLocalCSRFProtection();

    $next_iteracion = $this->getOption('next_child',1);
    $next = 1;
    foreach ($this->getObject()->getCaracteristicas() as $caracteristica)
    {
      if (is_null($caracteristica->getIdtipificacion()))
      {
        $this->incorporar($caracteristica, $next, $next_iteracion);
      }
      else
      {
        $this->incorporarTipificada($caracteristica, $next, $next_iteracion);
      }
      $next++;
    }
    

  }


  protected function incorporar($caracteristica, &$next, $next_iteracion)
  {
    $documento = $this->getOption('documento');
    $documento_caracteristica = $documento->getDocumentoCaracteristicaByIteracion($caracteristica,$next_iteracion);
    $documento_caracteristica->setCtCaracteristica($caracteristica);
    $documento_caracteristica->setCtDocumento($documento);
    $documento_caracteristica_form = new CtDocumentoCaracteristicaForm($documento_caracteristica);
    $documento_caracteristica->setUsuario(sfContext::getInstance()->getUser()->getGuardUser()->getId());
    $documento_caracteristica->setFechacambio(time());
    #$documento_caracteristica->setIditeracion(CALCULAR ITERACION)
    //unset($documento_caracteristica_form['id']);
    $this->embedForm('c'.$next, $documento_caracteristica_form);

  }
  protected function incorporarTipificada( $caracteristica,&$next, $next_iteracion)
  {
    $documento = $this->getOption('documento');
    $documento_caracteristica = $documento->getDocumentoCaracteristicaByIteracion($caracteristica,$next_iteracion);
    $documento_caracteristica->setCtCaracteristica($caracteristica);
    $documento_caracteristica->setCtDocumento($documento);
    $documento_caracteristica_form = new CtDocumentoCaracteristicaTipificadoForm($documento_caracteristica);
    //unset($documento_caracteristica_form['id']);
    $this->embedForm('c'.$next, $documento_caracteristica_form);

  }
}
